package com.sdi.infrastructure;

import impl.sdi.business.SimpleServicesFactory;
import impl.sdi.persistence.SimplePersistenceFactory;

import com.sdi.business.ServicesFactory;
import com.sdi.persistence.PersistenceFactory;

/**
 * Esta clase es la que realemente relaciona las interfaces de las capas 
 * con sus implementaciones finales. Si se deben hacer cambios de implementación
 * en algunas de las capas habrá que retocar esta clase.
 * 
 * En desarrollos más sofisticados esto se especificaría en ficheros de 
 * configuración lo que permitiria al "assembler" y "deployer" ajustar los 
 * ensamblajes entre capas sin necesidad de recompilar.
 * 		Assambler: forma la aplicación a base de componentes 
 * 			desarrollados externamente
 * 		Deployer: Adapta la aplicación, o reconfigura la aplicación en 
 * 			explotación a las máquinas/contenedores (tiers/layers)
 * 
 * Hay frameworks especializados en eso precisamente, por ejemplo Spring.
 * 
 * @author alb
 *
 */
public class Factories {

	public static ServicesFactory services = new SimpleServicesFactory();
	public static PersistenceFactory persistence = new SimplePersistenceFactory();
	
}
